#ifndef VENTANADISENIADOR_H_
#define VENTANADISENIADOR_H_

#include "BarraMenu.h"
#include "PropiedadesMundo.h"
#include "VistaNavegador.h"
#include "Paleta.h"
#include "Grabable.h"
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/frame.h>

class VentanaDiseniador : public Gtk::Window, public Grabable {
public:

    VentanaDiseniador();
    ~VentanaDiseniador();

    PropiedadesMundo* getPropiedadesMundoActual() const;
    VistaNavegador* getVistaNavegador() const;

    void actualizarVistaPropiedadesNivel();
    void resetear();

    void guardar(Mundo &mundo);
    void cargar(Mundo &mundo);

private:
    /* Nivel ventana */
    Gtk::Box *d_Box_vprincipal;

    /* Nivel d_Box_vprincipal */
    BarraMenu *d_MenuBar_menu;
    Gtk::Box *d_Box_hprincipal;

    /* Nivel d_Box_hprincipal */
    Gtk::Box *d_Box_vmundonivel, *d_Box_vlienzopaleta;

    /* Nivel d_Box_vmundonivel */
    Gtk::Frame d_Frame_mundo, d_Frame_nivel;
    PropiedadesMundo *d_Grid_mundo;
    Gtk::ScrolledWindow d_ScrolledWindow_navegadormundo;
    VistaNavegador* d_TreeView_navegadormundo;

    /* Nivel d_Box_vlienzopaleta */
    Gtk::ScrolledWindow d_ScrolledWindow_lienzo, d_ScrolledWindow_paleta;
    Gtk::Frame d_Frame_lienzo;
    Paleta d_ToolPalette_paleta;
};

#endif